#include <stdbool.h>
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>

bool flag = false;

void *func1() {
	flag = false;
	while (!flag) {
		sleep(5);
		printf("func1 do something...\n");
		fflush(stdout);
	}	
	printf("exit func1\n");
	fflush(stdout);
}

void *func2() {
	sleep(10);
	printf("func2 do something...\n");
	fflush(stdout);
	// 停止 func1 线程
	flag = true;
}

int main() {
	pthread_t p1, p2;
    pthread_create(&p1, NULL, func1, NULL);
    pthread_create(&p2, NULL, func2, NULL);

    pthread_join(p1, NULL);
    pthread_join(p2, NULL);
	return 0;
}
